package org.luxor.commons.schedule.constant;

/**
 * 线程池拒绝策略
 *
 * @author Mr.yan @date 2020/2/14
 */
public enum RejectedStrategy {
    /**
     * (默认) 如果添加失败，就抛出RejectedExecutionException异常
     */
    ABORT_POLICY,

    /**
     * (推荐使用) 如果添加失败，就将任务转回给调用方(主线程)自己去执行
     */
    CALLER_RUNS_POLICY,

    /**
     * 偷偷的丢弃无法添加的任务
     */
    DISCARD_POLICY,

    /**
     * 丢弃队列中最老的，然后再次尝试提交新任务。
     */
    DISCARD_OLDEST_POLICY
}
